$if>
$macro>
<$MACRO insattr>attribute attrib$MACRO>
<$MACRO insent>entity entity$MACRO>
<$MACRO instag>tag <tag>$MACRO>
<$MACRO insendtag>end tag <tag>$MACRO>
<$MACRO insval>value value$MACRO>
<$MACRO insid>id id$MACRO>
<$MACRO inssval>value$MACRO>
is able to produce lots of different warnings and
errors when parsing hsc-sources. The are devided into several classes,
and there is a possibility to filter out specific messages or whole
message classes.
There are also possibilities to change the rendering of messages and
redirect them to a file, making it easy to integrate into
existing developer environments.
Message elements
By default, messages show up as seen below:
file (line#, colum#): class and message-id: message
with being
file
the name of the input file that caused message
line#
and colum#
the position in input file that caused error
class
the message class,
one of , , , , or .
See below for details about message classes.
message
the message text, which consists of a description what
has caused the message
For example, a typical message would be:
<$source PRE>
hugo.hsc (17,23): Warning 11: unknown tag
$source>
Message classes
Note is a message only for the
users information. It can be suppressed using .
Bad-style informs the user that
his altough legal html-code includes constructs that indicate a bad style.
It can be suppressed using .
Portability-problem informs the
user that his altough legal html-code includes constructs can lead to problems
on old or buggy browsers.
It can be suppressed using .
Warning tells you that your source
includes some problematic parts, that can lead to problems with several
browsers.
It can be suppressed using .
Error indicates that there is something
wrong with your html-source. No output is written.
Fatal error tells you that something
terrible has happened and there is no way to continue the conversion.
No output is written.
Message options
There are several CLI options to modify the behavior of 's messages:
- can be used to suppress single messages or whole
message classes, if you are not interested in them
- MSGFORMAT specifies a
template how to use message elements
- MSGFILE is used to
redirect messages into a file, where they for example can be processed
by some message parser that controls your editor
- MSGANSI tells
to use some ANSI escape sequences to make messages easier to read, if
you only let them show up on the screen (and don't use any IDE)
List of messages
Below you can find a list of messages that might show up when processiong
hsc-sources. Most of them also include a short explanation what could
have caused the problem and how to fix it.
However, this is not a html-tutorial. To fully
understand these messages requires some experience from the user.
The project-file specified could not been open. This indicates
no problem, if you specified a project-file using
the first time; it will be created automatically after the
html-object has successfully been processed.
The data found in the project file are not of the required
form. Most likely, the file-format-version is outdated.
Remove the old file, will create a new one next time it
is invoked.
There are still characters to be read from input, but the file
already ends; tells you what it still expects to come.
An input file could not been opened. A more detailed message that tells
you why is displayed, too.
Notifies user that a tag has been removed. This usually happens
because the user requested this with one of the CLI-options.
A heading should not be more than one level below the heading
which preceded it. That is, an H3 element should not
follow an H1 element directly. The first heading
showing up in a document should be H1.
A keyword defined with the special attribute HSC.CLICK-HERE
has been found within the text inside an anchor specification.
Ok, now again in english: you used some term like "Click here" inside
the text describing a link. This is very clumsy and should be avoided;
see Composing
Good HTML for details.
You refered to an unknown tag or macro.
A tag that is expected to occure only once appeared at least twice.
Remove all unneccessary occurences of the tag.
You called a end-tag without using the corresponding start-tag
before.
A end-tag appeard where a different end-tag was expected to
appear before. Example: instead of
<$SOURCE PRE>
bold and italic
$SOURCE>
you should write
<$SOURCE PRE>
bold and italic
$SOURCE>
A tag that is required for every document is missing.
You called an start-tag, but didn't end it. Insert the required
end-tag.
You have used an unknown modifier
to define the characteristics of an tag or macro.
You used an entity, that doesn't know. This can happen if you
made a typo, or the entity has not been defined within
.
A has been expected, but didn't occure. For instance,
you could have an entity ü
instead of
ü
.
You referered to an attribute that doesn't exist at all.
A tag points to a local resource that doesn't exist.
You passed a value to an attribute, but did not embed it into single
or double quotes. This can lead to problems with older browsers.
An attribute referes to an attribute that has been defined, but no
value has been set for. Usually, you try to refer to an attribute
inside a macro, that no value has been passed to within the call
of the macro.
You have used an option
to define the characteristics of an attribute, which is not allowed to
appear at this location.
Some browser support the non-html-tag BLINK. It is used
to make text blinking, which annoys many users. Additionally, most
of them don't know how to configure their browser that it doesn't
blink, so you really should avoid it.
You tried to assign more than one default value within an attribute declaration.
For instance, like in
<$source PRE>
<$define HUGO:string="hugo"="or sepp?">
$source>
Remove the part corresponding to ="or sepp?"
.
You tried to assign a new value to an attribute declared as constant.
That is, the attribute option
/CONST
has been specified when defining it earlier.
An anchor tag has been specified without one of the required attributes
HREF
or NAME
.
A "greater than" sign appeared inside the text. You should write
">
" instead. This can also happen, if you made
an error calling a tag, and 's parser couln't recover.
A syntax element did not occure where it has been expected.
You tried to set an enumerator to a value it doesn't support.
The tag was defined within some old html-version, but should
not be used any more (eg. LISTING).
This tag is no legal html-tag and is only supportet by special
browsers.
This text and class of this message can be controlled by the
user using $message.
The file could not be found at any of the
expected locations.
The function
could not access the environment variable specified an returned an
empty value.
Non-boolean attributes require an value set.
You defined a new attribute, but used an
option that is unknown.
An attribute that is required has not been set within the call
of a tag or macro.
This message can show up if you have specified when invoking ,
and have set the attribute WIDTH
and/or HEIGHT
by
hand. It denotes that the values you have used differ from those has
evaluated from the image data.
Informs you that a special character (non-7-bit-ASCII) has been replaced
by it's corresponding entity.
A white space occured at a place where it was not supposed to.
The messages#47 to #50 touch problems that are known bugs of
several browsers. A general comment on sgml-comments: Try to avoid
them, use the * comment *
tag instead.
This message is active only if you specified a project file when invoking using
the option . It tell you that a reference to a local id within a
document could not be checked because the document linked to is not mentioned
in the project file.
Usually, this happens when you did not process the above mentioned document
with a project file specified before. Do not worry about that too much,
after processing all documents of your project at least once, this message
usually does not show up any more.
If it still is there, then you are refering to documents that are part of
none or another project using another project-file; if so, there is no
work-around for this case.
<* replace spec. char *>
An $else tag has been at an unexptected position. Usually,
a single preceding $if has two or more corresponging $else
tags assigned.
You have invoked a shell-command using and it returned a
value unequal to zero, which usually denotes an error while processing
the command. For error analysis, look at the output that the command
(hopefully) has made.
An element of the form ! has been detected.
A sgml-comment consisting of a single word, for instance
!--sepp--,
has been detected. Note that there are no blanks preceding/succeding
sepp)
An end tag has been detected without it's corresponding start tag
occuring before.
Icon-entities are not (yet) widly supported.
You have just redefined a tag or macro that has already been
declared before. The previous declaration will be thrown away.
Before you are allowed to use the first tag, the second tag has to
occure before. Example: INPUT may only occure
inside FORM.
A tag occures inside another tag that doesn't allowe this. For example,
you can't recursively use A inside A.
You tried to pass values to a end-tag or macro. If you need an attribute
for a end-macro only, you still have to define and pass it within the
start-macro; the end-macro will have access to all these attributes
and its values.
You redefined an alredy existing attribute. If this occures during
the definition of a new macro, you just tried to give two arguments the
same name.
You have tried to use an attribute name which contains characters not
allowed for that. Legal characters for attribute names are letters, digits,
, and .
Within an
expression,
you have used an binary operator that is not
one of those mentioned in the
list of operators.
You tried to use a simple tag as a container, for example /IMG
could not determine the size
of a link destination.
Somethings wrong with a or call.
You have tried to strip one of 's
special tags using the CLI-option
. This does not make much sense, because all these tags
will not show up in the output anyway.
A numeric value must only consist of letters. Only integer values are
allowed, therefor even a must not be used.
A color value must fit the template #rrggbb
or be one of the values declared in the special attribute
HSC.COLOR-NAMES
defined in
You forgot to specify the ID mentioned using A NAME=..,
or just made a typo.
You tried to redfine an ID that has already been declared before within
the current document.
This message should need no comment; anyway, read
Why Frames Suck
for more details.
A icon-entity has been found is was replaced by an IMG.
This message will only show up if you have passed the CLI option
.
See below.
These two messages point out that instead of (read the )
as a blank)
STRONG__important__/STRONG
you better should use
STRONGimportant/STRONG
It only affects tags like A, TITLE, headings and
physical/locigal styles.
If a attribute value contains any characters other then letters,
digits, or , it needs to be quoted.
The quote style has been changed for a specific attribute.
This message will only show up if you have passed the CLI option
.
<*
*>